Software-defined networking is an emerging architecture for data transfer networks. In a software-defined network “SDN”, the control plane is separated from the data plane so that the control-plane is implemented in one or more controllers that can be separate from the network elements and the data plane is implemented in the network elements. The network elements can be, for example, Internet Protocol “IP” routers, multiprotocol label switching “MPLS” nodes, packet optical switches, and/or Ethernet switches. Each network element may consist of a single apparatus or a combination of a plurality of apparatuses. Typically, the software-defined networking allows for quick experimenting and optimization of switching and/or routing policies and external access to the innards of network elements that formerly were closed and proprietary.
The one or more controllers of the software-defined network “SDN” are adapted to configure the network elements so that the network elements are capable of operating as nodes of the software-defined network. When configuring a network element, the controller sends to the network element configuration data with the aid of which the network element constructs a control system for forwarding and otherwise managing data. The control system comprises typically one or more look-up tables with the aid of which the network element is capable of operating as a part of the software-defined network. The control system can be constructed and maintained in accordance with for example the OpenFlow protocol. Details about the Open Flow can be found from the Open Flow Switch Specification managed by the Open Networking Foundation “ONF”.
In data driven learning, a network element, e.g. a router, of a software-defined network needs to provide the controller with information related to a data frame when certain criteria are met. In this document, the above-mentioned information enabling the data driven learning is hereinafter called frame information. The frame information can be provided to the controller e.g. so that a copy of the data frame, a part of the data frame, or the data frame itself is transferred to the controller. One example of the data driven learning is media access control “MAC” learning where appropriate frame information about a data frame that does not have a corresponding entry in a MAC-forwarding table or that arrives at an unexpected ingress port is steered to the controller, and the controller configures the source MAC-table and the destination MAC-table of the network element accordingly. The data driven learning may also occur in the Internet Protocol “IP” multicast when transitioning from the every source for a particular group “*, Group”-tree based multicasting to the source based distribution “Source, Group”-tree based multicasting.
The above-described data driven learning where frame information concerning data frames is delivered to a controller and the controller configures the control system, e.g. forwarding tables, of a network element at least partly on the basis of the above-mentioned information is however not free from challenges. One of the challenges is related to data traffic between the network element and the controller. In some cases it is possible that the same frame information is transferred hundreds or thousands of times from the network element to the controller before relevant entries of the control system of the network element are configured and the network element becomes capable of managing appropriate data frames without the aid of the controller. Thus, during data driven learning, there can be so much data traffic between the network elements and the controller that the data transfer capacity between the controller and the network elements may constitute a severe bottleneck from the viewpoint of the operation of the whole software-defined network.